package com.study.modules.designPatterns.No1SingletonMode;

/**
 * 单例模式：枚举
 * 对象在加载时就已经创建好了
 * 优点：
 * 1. 避免了反射攻击，因为枚举类在加载时就已经确定了，不存在反射攻击的风险。
 * 2. 避免了多线程的同步问题，因为在编译期间就确定了枚举实例的个数，所以可以避免多线程的同步问题。
 * 3. 避免了内存浪费，因为单例对象只会被加载一次，节省了内存。
 * 缺点：
 * 1. 单例对象在内存中只有一份，如果我们需要一个对象，而又不想让它被实例化，那么我们可以采用枚举的方式来实现。
 * 2. 单例对象必须有且仅有一个实例，如果我们需要一个对象，而又不想让它被实例化，那么我们可以采用枚举的方式来实现。
 * <p>
 * 使用方式： singletonEnum.INSTANCE.doSomething();
 */
public enum singletonEnum {
    INSTANCE;

    public void doSomething() {
        System.out.println("doSomething");
    }
}
